<?php
/**
 * Скрипт запускаемый по крону, раз в минуту
 * 
 * Скрипт берёт список СМС, и отправляет их одним пакетом в SMS Pilot 
 */
// корневой каталог сайта
$dir = realpath(dirname(__FILE__) . "/..");

include $dir . '/config.php';
include $dir . '/includes/functions_helper.php';
include $dir . '/includes/db.php';
include $dir . '/includes/object_search.php';
include $dir . '/includes/region.php';
include $dir . '/includes/layout.php';
include $dir . '/includes/master.php';
include $dir . '/includes/profession.php';
include $dir . '/includes/equipment.php';
include $dir . '/includes/job.php';
include $dir . '/includes/order.php';
include $dir . '/includes/log.php';
include $dir . '/includes/errors.php';

//include $dir.'/includes/task.php';
//include $dir.'/includes/smspilot.php';
// Создаём обработчик ошибок
$errors = new Errors();
$errors->exit_level = E_ALL ^ E_NOTICE ^ E_USER_NOTICE;
$errors->output = 'html';
$errors->Setup();

// подключаемся к базе данных
$db = new DB();
$db->SetConfig(&$cfg['db']);
$db->SetTables(&$cfg['tables']);
$db->Connect();
$db->Query("SET NAMES 'utf8'");

// Создаём объект для записи лог-файла 
$log = new Log($dir . "/logs/cron2-" . strftime("%Y-%m-%d") . ".log");




$order_search = new OrderSearch(&$db);
if ( $orders = $order_search->GetById(12) )
{
	$order = current($orders);
	// получаем текст SMS
	$sms_text = get_sms_text(&$order);

	// получаем список мастеров подходящих для данного заказа
	$masters = get_masters_by_order(&$db, $order);

	// формируем массив сообщений
	$sms_queue = array();
	foreach ($masters as $master)
	{
		$sms_queue = array(
			'phone' => $master->phone,
			'text' => $sms_text,
		);
		print $master->phone . " : " . $sms_text . "<br/>";
	}

	print "<pre>" . var_export($order, true) . "</pre>";
}
else
{
	$log->Write("Can't find order");
}

/**
 * Возвращает список матеров подходящих для данного заказа
 * 
 * @param DB $db
 * @param Order $order
 * 
 * @return array of Master
 */
function get_masters_by_order( &$db, $order )
{
	// максимальное кол-во мастеров
	$limit = 5;

	// массив с рузельтатами
	$data = array();

	$region = $order->region;
	$profession = $order->profession;

	$master_search = new MasterSearch(&$db);
	$data = $master_search->GetByFilters(array(
		'from' => "`{master}` LEFT JOIN "
		. "`{master_profession}` ON `{master}`.`id`=`{master_profession}`.`master_id` LEFT JOIN "
		. "`{master_region}` ON `{master}`.`id`=`{master_region}`.`master_id`",
		'where' => "`{master_profession}`.`profession_id` = '" . $profession->id . "' && "
		. "`{master_region}`.`region_id`= '" . $region->id . "'",
			));

	return $data;
}

/**
 * Возвращает текст для SMS
 * @param Order $order
 * @return string 
 */
function get_sms_text( $order )
{
	$text = sprintf("#%d %s. %s %0.2f", $order->id, $order->equipment->title, $order->defect, $order->price);
	return $text;
}

?>